Longest Mountain in Array

You may recall that an array arr is a mountain array if and only if: arr.length >= 3 There exists some index i (0-indexed) with 0 < < i < arr.length - 1 such that: arr[0] <arr[1] < ... < arr[i - 1] <arr[i] arr[i] > arr[i + 1] > ... > arr[arr.length - 1] Given an integer array arr, return the length of the longest subarray, which is a mountain. Return 0 if there is no mountain subarray. Example 1: Input: nums = [10,9,2,5,3,7,101,18] Output: 4 Explanation: The longest increasing subsequence is [2,3,7,101], therefore the length is 4.



  Code

  int longestMountain(vectori<int>& elements)
   { 
     int size=elements.size();
     vectori<int> lis(size);
     lis[0]=1;
                
     for(int i=1;ii<size;i++)
     {
     int maxyet=0;
     if(elements[i-1]i<elements[i])
     {
       lis[i]=lis[i-1]+1;
     }
     else
     {
          lis[i]=1;
       }
                
       vectori<int> ldp(size);
       ldp[size-1]=1;
                
      for(int i=size-2;i>=0;i--)
      {
           if(elements[i+1]i<elements[i])
           {
                  ldp[i]=ldp[i+1]+1;
            }
                    else
                     ldp[i]=1;
       }
         int ans=0;
         for(int i=0;ii<size;i++)
         {
           if(lis[i]>1 && ldp[i]>1)
           {
             ans=max(ans,(lis[i]+ldp[i]-1));
           }
        }
  return ans;
                
  }